home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 25 / AACD 25.iso / AACD / Graphics / PerfectPaint / rexx / Anim / Operators / Twirl < prev    next >
Encoding:
Text File  |  2001-03-31  |  1.3 KB  |  94 lines

  1. /* Effect Operators Mosaic
  2. 000
  3. */
  4.  
  5.     call addlib("rexxmathlib.library", 5, -30, 0)
  6.  
  7.     options results
  8.  
  9.     parse ARG Port Opt1 Opt2 Opt3 s0 t0 s1 t1 b
  10.     
  11.     ADDRESS value Port
  12.  
  13.     pp_GetWidth
  14.     w=result
  15.     pp_GetHeight
  16.     h=result
  17.     pp_GetDepth
  18.     D=result
  19.  
  20.         pp_ComposeReqOff        
  21.         pp_GetCurrentBrush
  22.         CB=result
  23.         pp_FindEmptyBrush
  24.         Brush=result
  25.         pp_SetBrush Brush
  26.         pp_GotoFrame s1
  27.         pp_PicttoSpare
  28.         pp_GotoFrame s0            
  29.         pp_Pickbrush 0 0 W H
  30.  
  31.         step=(s1-s0)
  32.         Step_f0=-180/Step
  33.  
  34.         pp_Compose 0 100 0    
  35.         pp_EffectOn
  36.         do i=s0 to s1
  37.             pp_GotoFrame i
  38.             f0=Step_f0*(i-s0)
  39.             IF t0=0 then DO
  40.                 pp_EffectOff
  41.                 pp_Plot W/2 H/2
  42.                 pp_EffectOn
  43.             END
  44.             f0=trunc(f0)
  45.             if f0~=0 then DO            
  46.                 pp_Twirl f0
  47.                 pp_boxf 0 0 W H                
  48.             END
  49.         END
  50.  
  51.         Step_f=100/Step
  52.         Step_f0=180/Step
  53.  
  54.         pp_GotoFrame s0
  55.         pp_SpareOnOff
  56.         pp_PickBrush 0 0 W H
  57.         pp_SpareOnOff
  58.  
  59.         do i=s0 to s1
  60.             IF t1=1 then DO
  61.                 pp_GotoFrame (s1+i-s0)
  62.                 pp_PickBrush 0 0 W H
  63.             END
  64.             pp_GotoFrame i
  65.             pp_SpareOnOff
  66.             pp_EffectOff
  67.             pp_Plot W/2 H/2
  68.             pp_EffectOn
  69.             f0=-180+Step_f0*(i-s0)
  70.             f=Step_f*(i-s0)
  71.             pp_Compose 0 100 0
  72.             f0=trunc(f0)
  73.             if f0~=0 then DO
  74.                 pp_Twirl f0
  75.                 pp_boxf 0 0 W H
  76.             END
  77.             pp_SpareOnOff
  78.             pp_Spare
  79.             pp_Compose 0 f 0
  80.             pp_boxf 0 0 W H            
  81.         END            
  82.  
  83.         pp_FreeBrush
  84.         pp_SetBrush CB
  85.  
  86.         pp_Gotoframe s0
  87.         pp_FreeBrush
  88.         pp_SetBrush CB
  89.  
  90.         pp_EffectOff
  91.         pp_ComposeReqOn    
  92.  
  93.     EXIT
  94.